SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		lLara
-- Create date: 29/4/2014
-- Description:	?Descripcion
-- =============================================
CREATE TRIGGER [obd.].[ActualizarArchivos]
ON [obd.].[Archivos]
AFTER UPDATE
AS 
BEGIN
	SET NOCOUNT ON;

	DECLARE curDel CURSOR LOCAL FOR 
					SELECT idArchivo, ISNULL(idProyecto,0), nombre, 
						ISNULL(auto,'n/a'), ISNULL(software,'n/a'), fecha, 
						analizado, ISNULL(sistema,'n/a'), ISNULL(reference,'n/a'), 
						ISNULL(configuration,'n/a'), ISNULL(code,'n/a'), ISNULL(softwareModule,'n/a'), 
						ISNULL(valido,0), fecha_Analisis, ISNULL(kilometraje,'n/a'), 
						ISNULL(diumpr_Ctgendenom,'n/a'), ISNULL(diumpr_Ctign,'n/a'), ISNULL(errores_Entrada,'n/a'), 
						ISNULL(errores_Codigo,'n/a'), ISNULL(idFlotte,0), ISNULL(idSystem,0), 
						ISNULL(protocol,'n/a'), ISNULL(ecuHardware,'n/a'), ISNULL(ecuType,'n/a'), 
						ISNULL(engineProject,'n/a'), displacement, ISNULL(emissionconcept,'n/a'), 
						ISNULL(platform,'n/a'), ISNULL(power,'n/a'), ISNULL(gearbox,'n/a'), 
						ISNULL(manufacturer,'n/a'), ISNULL(versionnumber,'n/a'), ISNULL(partnumber,'n/a'), 
						ISNULL(chasis,'n/a'), ISNULL(hardwarePartNum,'n/a'), ISNULL(systemName,'n/a'), 
						ISNULL(odxFileIdentifier,'n/a'), ISNULL(odxFileVersion,'n/a'), ISNULL(hardwareVersionNumber,'n/a'), 
						ISNULL(engineSystemNumber,'n/a'), ISNULL(codingvalue,'n/a')
					FROM   deleted;
	DECLARE curIns CURSOR LOCAL FOR 
					SELECT idArchivo, ISNULL(idProyecto,0), nombre, 
						ISNULL(auto,'n/a'), ISNULL(software,'n/a'), fecha, 
						analizado, ISNULL(sistema,'n/a'), ISNULL(reference,'n/a'), 
						ISNULL(configuration,'n/a'), ISNULL(code,'n/a'), ISNULL(softwareModule,'n/a'), 
						ISNULL(valido,0), fecha_Analisis, ISNULL(kilometraje,'n/a'), 
						ISNULL(diumpr_Ctgendenom,'n/a'), ISNULL(diumpr_Ctign,'n/a'), ISNULL(errores_Entrada,'n/a'), 
						ISNULL(errores_Codigo,'n/a'), ISNULL(idFlotte,0), ISNULL(idSystem,0), 
						ISNULL(protocol,'n/a'), ISNULL(ecuHardware,'n/a'), ISNULL(ecuType,'n/a'), 
						ISNULL(engineProject,'n/a'), displacement, ISNULL(emissionconcept,'n/a'), 
						ISNULL(platform,'n/a'), ISNULL(power,'n/a'), ISNULL(gearbox,'n/a'), 
						ISNULL(manufacturer,'n/a'), ISNULL(versionnumber,'n/a'), ISNULL(partnumber,'n/a'), 
						ISNULL(chasis,'n/a'), ISNULL(hardwarePartNum,'n/a'), ISNULL(systemName,'n/a'), 
						ISNULL(odxFileIdentifier,'n/a'), ISNULL(odxFileVersion,'n/a'), ISNULL(hardwareVersionNumber,'n/a'), 
						ISNULL(engineSystemNumber,'n/a'), ISNULL(codingvalue,'n/a')
					FROM   inserted;
									
    DECLARE @vIdArchivoAnt INT, @vIdProyectoAnt INT, @vNombreAnt VARCHAR(255), @vAutoAnt VARCHAR(60), 
			@vSoftwareAnt VARCHAR(60), @vFechaAnt DATETIME, @vAnalizadoAnt INT, 
			@vSistemaAnt VARCHAR(60), @vReferenceAnt VARCHAR(60), @vConfigurationAnt VARCHAR(60), 
			@vCodeAnt VARCHAR(60), @vSoftwareModuleAnt VARCHAR(60), @vValidoAnt INT, 
			@vFecha_AnalisisAnt DATETIME, @vKilometrajeAnt VARCHAR(60), @vDiumpr_CtgendenomAnt VARCHAR(60), 
			@vDiumpr_CtignAnt VARCHAR(60), @vErrores_EntradaAnt VARCHAR(60), @vErrores_CodigoAnt VARCHAR(60), 
			@vIdFlotteAnt INT, @vIdSystemAnt INT, @vProtocolAnt VARCHAR(30), 
			@vEcuHardwareAnt VARCHAR(30), @vEcuTypeAnt VARCHAR(30), @vEngineProjectAnt VARCHAR(30), 
			@vDisplacementAnt NUMERIC, @vEmissionconceptAnt VARCHAR(30), @vPlatformAnt VARCHAR(30), 
			@vPowerAnt VARCHAR(30), @vGearboxAnt VARCHAR(30), @vManufacturerAnt VARCHAR(30), 
			@vVersionnumberAnt VARCHAR(15), @vPartnumberAnt VARCHAR(20), @vChasisAnt VARCHAR(17), 
			@vHardwarePartNumAnt VARCHAR(20), @vSystemNameAnt VARCHAR(20), @vOdxFileIdentifierAnt VARCHAR(20), 
			@vOdxFileVersionAnt VARCHAR(10), @vHardwareVersionNumberAnt VARCHAR(5), @vEngineSystemNumberAnt VARCHAR(5), 
			@vCodingvalueAnt VARCHAR(30), 
								
	DECLARE @vIdArchivoNuevo INT, @vIdProyectoNuevo INT, @vNombreNuevo VARCHAR(255), @vAutoNuevo VARCHAR(60), 
			@vSoftwareNuevo VARCHAR(60), @vFechaNuevo DATETIME, @vAnalizadoNuevo INT, 
			@vSistemaNuevo VARCHAR(60), @vReferenceNuevo VARCHAR(60), @vConfigurationNuevo VARCHAR(60), 
			@vCodeNuevo VARCHAR(60), @vSoftwareModuleNuevo VARCHAR(60), @vValidoNuevo INT, 
			@vFecha_AnalisisNuevo DATETIME, @vKilometrajeNuevo VARCHAR(60), @vDiumpr_CtgendenomNuevo VARCHAR(60), 
			@vDiumpr_CtignNuevo VARCHAR(60), @vErrores_EntradaNuevo VARCHAR(60), @vErrores_CodigoNuevo VARCHAR(60), 
			@vIdFlotteNuevo INT, @vIdSystemNuevo INT, @vProtocolNuevo VARCHAR(30), 
			@vEcuHardwareNuevo VARCHAR(30), @vEcuTypeNuevo VARCHAR(30), @vEngineProjectNuevo VARCHAR(30), 
			@vDisplacementNuevo NUMERIC, @vEmissionconceptNuevo VARCHAR(30), @vPlatformNuevo VARCHAR(30), 
			@vPowerNuevo VARCHAR(30), @vGearboxNuevo VARCHAR(30), @vManufacturerNuevo VARCHAR(30), 
			@vVersionnumberNuevo VARCHAR(15), @vPartnumberNuevo VARCHAR(20), @vChasisNuevo VARCHAR(17), 
			@vHardwarePartNumNuevo VARCHAR(20), @vSystemNameNuevo VARCHAR(20), @vOdxFileIdentifierNuevo VARCHAR(20), 
			@vOdxFileVersionNuevo VARCHAR(10), @vHardwareVersionNumberNuevo VARCHAR(5), @vEngineSystemNumberNuevo VARCHAR(5), 
			@vCodingvalueNuevo VARCHAR(30), 
	
    DECLARE @vAccion AS VARCHAR(4000)

    OPEN curDel;
    OPEN curIns;
    
    FETCH curDel INTO @vIdArchivoAnt, @vIdProyectoAnt, @vNombreAnt, @vAutoAnt, 
			@vSoftwareAnt, @vFechaAnt, @vAnalizadoAnt, 
			@vSistemaAnt, @vReferenceAnt, @vConfigurationAnt, 
			@vCodeAnt, @vSoftwareModuleAnt, @vValidoAnt, 
			@vFecha_AnalisisAnt, @vKilometrajeAnt, @vDiumpr_CtgendenomAnt, 
			@vDiumpr_CtignAnt, @vErrores_EntradaAnt, @vErrores_CodigoAnt, 
			@vIdFlotteAnt, @vIdSystemAnt, @vProtocolAnt, 
			@vEcuHardwareAnt, @vEcuTypeAnt, @vEngineProjectAnt, 
			@vDisplacementAnt, @vEmissionconceptAnt, @vPlatformAnt, 
			@vPowerAnt, @vGearboxAnt, @vManufacturerAnt, 
			@vVersionnumberAnt, @vPartnumberAnt, @vChasisAnt, 
			@vHardwarePartNumAnt, @vSystemNameAnt, @vOdxFileIdentifierAnt, 
			@vOdxFileVersionAnt, @vHardwareVersionNumberAnt, @vEngineSystemNumberAnt, 
			@vCodingvalueAnt, 
						
	FETCH curIns INTO @vIdArchivoNuevo, @vIdProyectoNuevo, @vNombreNuevo, @vAutoNuevo, 
			@vSoftwareNuevo, @vFechaNuevo, @vAnalizadoNuevo, 
			@vSistemaNuevo, @vReferenceNuevo, @vConfigurationNuevo, 
			@vCodeNuevo, @vSoftwareModuleNuevo, @vValidoNuevo, 
			@vFecha_AnalisisNuevo, @vKilometrajeNuevo, @vDiumpr_CtgendenomNuevo, 
			@vDiumpr_CtignNuevo, @vErrores_EntradaNuevo, @vErrores_CodigoNuevo, 
			@vIdFlotteNuevo, @vIdSystemNuevo, @vProtocolNuevo, 
			@vEcuHardwareNuevo, @vEcuTypeNuevo, @vEngineProjectNuevo, 
			@vDisplacementNuevo, @vEmissionconceptNuevo, @vPlatformNuevo, 
			@vPowerNuevo, @vGearboxNuevo, @vManufacturerNuevo, 
			@vVersionnumberNuevo, @vPartnumberNuevo, @vChasisNuevo, 
			@vHardwarePartNumNuevo, @vSystemNameNuevo, @vOdxFileIdentifierNuevo, 
			@vOdxFileVersionNuevo, @vHardwareVersionNumberNuevo, @vEngineSystemNumberNuevo, 
			@vCodingvalueNuevo, 
    
	SET @vAccion='';
	
    IF @vIdArchivoAnt <> @vIdArchivoNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'IdArchivo: ' + CONVERT(VARCHAR,@vIdArchivoAnt) + ' -> ' + CONVERT(VARCHAR,@vIdArchivoNuevo) + '; '
    END
    IF @vIdProyectoAnt <> @vIdProyectoNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'IdProyecto: ' + CONVERT(VARCHAR,@vIdProyectoAnt) + ' -> ' + CONVERT(VARCHAR,@vIdProyectoNuevo) + '; '
    END
    IF @vNombreAnt <> @vNombreNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Nombre: ' + @vNombreAnt + ' -> ' + @vNombreNuevo + '; '
    END
    IF @vAutoAnt <> @vAutoNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Auto: ' + @vAutoAnt + ' -> ' + @vAutoNuevo + '; '
    END
    IF @vSoftwareAnt <> @vSoftwareNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Software: ' + @vSoftwareAnt + ' -> ' + @vSoftwareNuevo + '; '
    END
    IF @vFechaAnt <> @vFechaNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Fecha: ' + CONVERT(VARCHAR,@vFechaAnt) + ' -> ' + CONVERT(VARCHAR,@vFechaNuevo) + '; '
    END
    IF @vAnalizadoAnt <> @vAnalizadoNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Analizado: ' + CONVERT(VARCHAR,@vAnalizadoAnt) + ' -> ' + CONVERT(VARCHAR,@vAnalizadoNuevo) + '; '
    END
    IF @vSistemaAnt <> @vSistemaNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Sistema: ' + @vSistemaAnt + ' -> ' + @vSistemaNuevo + '; '
    END
    IF @vReferenceAnt <> @vReferenceNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Reference: ' + @vReferenceAnt + ' -> ' + @vReferenceNuevo + '; '
    END
    IF @vConfigurationAnt <> @vConfigurationNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Configuration: ' + @vConfigurationAnt + ' -> ' + @vConfigurationNuevo + '; '
    END
    IF @vCodeAnt <> @vCodeNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Code: ' + @vCodeAnt + ' -> ' + @vCodeNuevo + '; '
    END
    IF @vSoftwareModuleAnt <> @vSoftwareModuleNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'SoftwareModule: ' + @vSoftwareModuleAnt + ' -> ' + @vSoftwareModuleNuevo + '; '
    END
    IF @vValidoAnt <> @vValidoNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Valido: ' + CONVERT(VARCHAR,@vValidoAnt) + ' -> ' + CONVERT(VARCHAR,@vValidoNuevo) + '; '
    END
    IF @vFecha_AnalisisAnt <> @vFecha_AnalisisNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Fecha_Analisis: ' + CONVERT(VARCHAR,@vFecha_AnalisisAnt) + ' -> ' + CONVERT(VARCHAR,@vFecha_AnalisisNuevo) + '; '
    END
    IF @vKilometrajeAnt <> @vKilometrajeNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Kilometraje: ' + @vKilometrajeAnt + ' -> ' + @vKilometrajeNuevo + '; '
    END
    IF @vDiumpr_CtgendenomAnt <> @vDiumpr_CtgendenomNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Diumpr_Ctgendenom: ' + @vDiumpr_CtgendenomAnt + ' -> ' + @vDiumpr_CtgendenomNuevo + '; '
    END
    IF @vDiumpr_CtignAnt <> @vDiumpr_CtignNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Diumpr_Ctign: ' + @vDiumpr_CtignAnt + ' -> ' + @vDiumpr_CtignNuevo + '; '
    END
    IF @vErrores_EntradaAnt <> @vErrores_EntradaNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Errores_Entrada: ' + @vErrores_EntradaAnt + ' -> ' + @vErrores_EntradaNuevo + '; '
    END
    IF @vErrores_CodigoAnt <> @vErrores_CodigoNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Errores_Codigo: ' + @vErrores_CodigoAnt + ' -> ' + @vErrores_CodigoNuevo + '; '
    END
    IF @vIdFlotteAnt <> @vIdFlotteNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'IdFlotte: ' + CONVERT(VARCHAR,@vIdFlotteAnt) + ' -> ' + CONVERT(VARCHAR,@vIdFlotteNuevo) + '; '
    END
    IF @vIdSystemAnt <> @vIdSystemNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'IdSystem: ' + CONVERT(VARCHAR,@vIdSystemAnt) + ' -> ' + CONVERT(VARCHAR,@vIdSystemNuevo) + '; '
    END
    IF @vProtocolAnt <> @vProtocolNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Protocol: ' + @vProtocolAnt + ' -> ' + @vProtocolNuevo + '; '
    END
    IF @vEcuHardwareAnt <> @vEcuHardwareNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'EcuHardware: ' + @vEcuHardwareAnt + ' -> ' + @vEcuHardwareNuevo + '; '
    END
    IF @vEcuTypeAnt <> @vEcuTypeNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'EcuType: ' + @vEcuTypeAnt + ' -> ' + @vEcuTypeNuevo + '; '
    END
    IF @vEngineProjectAnt <> @vEngineProjectNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'EngineProject: ' + @vEngineProjectAnt + ' -> ' + @vEngineProjectNuevo + '; '
    END
    IF @vDisplacementAnt <> @vDisplacementNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Displacement: ' + CONVERT(VARCHAR,@vDisplacementAnt) + ' -> ' + CONVERT(VARCHAR,@vDisplacementNuevo) + '; '
    END
    IF @vEmissionconceptAnt <> @vEmissionconceptNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Emissionconcept: ' + @vEmissionconceptAnt + ' -> ' + @vEmissionconceptNuevo + '; '
    END
    IF @vPlatformAnt <> @vPlatformNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Platform: ' + @vPlatformAnt + ' -> ' + @vPlatformNuevo + '; '
    END
    IF @vPowerAnt <> @vPowerNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Power: ' + @vPowerAnt + ' -> ' + @vPowerNuevo + '; '
    END
    IF @vGearboxAnt <> @vGearboxNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Gearbox: ' + @vGearboxAnt + ' -> ' + @vGearboxNuevo + '; '
    END
    IF @vManufacturerAnt <> @vManufacturerNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Manufacturer: ' + @vManufacturerAnt + ' -> ' + @vManufacturerNuevo + '; '
    END
    IF @vVersionnumberAnt <> @vVersionnumberNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Versionnumber: ' + @vVersionnumberAnt + ' -> ' + @vVersionnumberNuevo + '; '
    END
    IF @vPartnumberAnt <> @vPartnumberNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Partnumber: ' + @vPartnumberAnt + ' -> ' + @vPartnumberNuevo + '; '
    END
    IF @vChasisAnt <> @vChasisNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Chasis: ' + @vChasisAnt + ' -> ' + @vChasisNuevo + '; '
    END
    IF @vHardwarePartNumAnt <> @vHardwarePartNumNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'HardwarePartNum: ' + @vHardwarePartNumAnt + ' -> ' + @vHardwarePartNumNuevo + '; '
    END
    IF @vSystemNameAnt <> @vSystemNameNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'SystemName: ' + @vSystemNameAnt + ' -> ' + @vSystemNameNuevo + '; '
    END
    IF @vOdxFileIdentifierAnt <> @vOdxFileIdentifierNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'OdxFileIdentifier: ' + @vOdxFileIdentifierAnt + ' -> ' + @vOdxFileIdentifierNuevo + '; '
    END
    IF @vOdxFileVersionAnt <> @vOdxFileVersionNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'OdxFileVersion: ' + @vOdxFileVersionAnt + ' -> ' + @vOdxFileVersionNuevo + '; '
    END
    IF @vHardwareVersionNumberAnt <> @vHardwareVersionNumberNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'HardwareVersionNumber: ' + @vHardwareVersionNumberAnt + ' -> ' + @vHardwareVersionNumberNuevo + '; '
    END
    IF @vEngineSystemNumberAnt <> @vEngineSystemNumberNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'EngineSystemNumber: ' + @vEngineSystemNumberAnt + ' -> ' + @vEngineSystemNumberNuevo + '; '
    END
    IF @vCodingvalueAnt <> @vCodingvalueNuevo
    BEGIN
	  SET @vAccion= @vAccion + 'Codingvalue: ' + @vCodingvalueAnt + ' -> ' + @vCodingvalueNuevo + '; '
    END

	
	INSERT obd.LOGMOVIMIENTOS (tabla, idReg, fecha, 
							   user_Id, accion)
    VALUES ('Archivos', @vIdReg, GETDATE(), 
			@vUser_Id, @vAccion)
    
END
GO
